home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / lib / cryptsetup / scripts / decrypt_derived next >
Text File  |  2009-10-14  |  730b  |  47 lines

  1. #!/bin/sh
  2.  
  3. countlines() {
  4.     local IFS input count tmp
  5.     input="$1"
  6.     count=0
  7.     IFS='
  8. '
  9.     for tmp in $input; do
  10.         count=$(( $count + 1 ))
  11.     done
  12.     echo $count
  13. }
  14.  
  15. if [ -z "$1" ]; then
  16.     echo "$0: must be executed with a crypto device as argument" >&2
  17.     exit 1
  18. fi
  19.  
  20. if ! device=$(dmsetup --showkeys table 2> /dev/null | grep "^$1:"); then
  21.     echo "$0: failed to find $1 in dmtable" >&2
  22.     exit 1
  23. fi
  24.  
  25. if [ -z "$device" ]; then
  26.     echo "$0: device $1 doesn't exist" >&2
  27.     exit 1
  28. fi
  29.  
  30. count=$(countlines "$device")
  31. if [ $count -ne 1 ]; then
  32.     echo "$0: more than one device match $1" >&2
  33.     exit 1
  34. fi
  35.  
  36. eval set -- $device
  37. type="$4"
  38. key="$6"
  39.  
  40. if [ "$type" != "crypt" ]; then
  41.     echo "$0: device $1 is not a crypto device" >&2
  42.     exit 1
  43. fi
  44.  
  45. echo -n "$key"
  46. exit 0
  47.